<?php
//------------------------------------------------------------ Contraintes d'accès de la page

	// on vérifie que cette page est appelée à partir de l'index et que l'utilisateur a le droit de consultation
	if(isset($_SESSION) && ($GLOBALS['USER']['level'] >= 2 || $GLOBALS['USER']['admin'])){

?>
<?php
//------------------------------------------------------------ Définition des variables d'affichage

	// variable indiquant la page sélectionnée
	if(isset($_GET['l']) && numericInt($_GET['l'])){ 
		$page = $_GET['l'];
	}else{
		$page = 1;
	}
		
	// variable indiquant l'ordre selon lequel on tri la liste
	if(isset($_GET['o'])){
		switch($_GET['o']){
		case 0: $ordre = 0; $ordreBDD = "ASC"; break;
		case 1: $ordre = 1; $ordreBDD = "DESC"; break;
		default: $ordre = 1; $ordreBDD = "DESC"; break;
		}
	}else{
		$ordre = 1;
		$ordreBDD = "DESC";
	}
	
	// variable indiquant la colonne selon laquelle on tri la liste
	if(isset($_GET['t'])){
		switch($_GET['t']){
		case 1: $tri = 1; $triBDD = "date ".$ordreBDD; break;
		case 2: $tri = 2; $triBDD = "commune ".$ordreBDD.", pays ".$ordreBDD; break;
		case 3: $tri = 3; $triBDD = "milieu ".$ordreBDD; break;
		default: $tri = 1; $triBDD = "date ".$ordreBDD; break;
		}
	}else{
		$tri = 1;
		$triBDD = "date ".$ordreBDD;
	}
	
	// Traitement des options
	$optionsSet = false;
	$optionsURL = "";
	
	if((isset($_POST['opt_seulStatut']) || isset($_GET['opt_seulStatut'])) && (isset($_POST['opt_statutType']) || isset($_GET['opt_statutType']))){
		if(isset($_POST['opt_statutType'])){
			$opt_statutType = $_POST['opt_statutType'];
		}else{
			$opt_statutType = $_GET['opt_statutType'];
		}
		if($opt_statutType >= 1 && $opt_statutType <= 3){
			$optionsURL .= "&amp;opt_seulStatut=".$opt_statutType."&amp;opt_statutType=".$opt_statutType."";
			$optionsSet = true;
		}
	}
	
?>
<?php
//------------------------------------------------------------ Récupération de la liste des visites

	// On compte le nombre total de visites enregistrées
	$nb_total_visites = 0;
	
	$query_compte_visites = "SELECT COUNT(*) ";
	$query_compte_visites .= "FROM visite_dans_nature ";
	// Si l'utilisateur a saisi des options
	if($optionsSet){
		if(isset($opt_statutType)){
			switch($opt_statutType){
			case 1: $query_compte_visites .= "WHERE DATEVISITE > CURDATE() "; break;
			case 2: $query_compte_visites .= "WHERE DATEVISITE = CURDATE() "; break;
			case 3: $query_compte_visites .= "WHERE DATEVISITE < CURDATE() "; break;
			}
		}
	}
	
	$result_compte_visites = mysql_query($query_compte_visites, $connexion) or logError("COMPTE VISITES DANS NATURE-".$query_compte_visites."-".mysql_error());
	
	$tab_compte_visites = mysql_fetch_row($result_compte_visites);
	
	$nb_total_visites = $tab_compte_visites[0];
	
	mysql_free_result($result_compte_visites);
	
	// récupération des informations des visites
	$query_recuperation_liste_visites = "SELECT v.CODEVISITEDANSNATURE AS id, v.DATEVISITE AS date, m.NOMMILIEUBIOLOGIQUE AS milieu, c.NOMCOMMUNE AS commune, p.NOMPAYS AS pays ";
	$query_recuperation_liste_visites .= "FROM visite_dans_nature v ";
	$query_recuperation_liste_visites .= "INNER JOIN milieu_biologique m ON m.CODEMILIEUBIOLOGIQUE = v.CODEMILIEUBIOLOGIQUE ";
	$query_recuperation_liste_visites .= "LEFT JOIN commune c INNER JOIN pays p ON c.CODEPAYS = p.CODEPAYS ON v.CODECOMMUNE = c.CODECOMMUNE ";
	// Si l'utilisateur a saisi des options
	if($optionsSet){
		if(isset($opt_statutType)){
			switch($opt_statutType){
			case 1: $query_recuperation_liste_visites .= "WHERE v.DATEVISITE > CURDATE() "; break;
			case 2: $query_recuperation_liste_visites .= "WHERE v.DATEVISITE = CURDATE() "; break;
			case 3: $query_recuperation_liste_visites .= "WHERE v.DATEVISITE < CURDATE() "; break;
			}
		}
	}
	$query_recuperation_liste_visites .= "ORDER BY ".$triBDD." ";
	$query_recuperation_liste_visites .= "LIMIT ".(($page-1)*$GLOBALS['CONFIG']['nbParPage']).", ".($GLOBALS['CONFIG']['nbParPage'])." ";
	
	$result_recuperation_liste_visites = mysql_query($query_recuperation_liste_visites, $connexion) or logError("RECUPERATION LISTE VISITES DANS NATURE-".$query_recuperation_liste_visites."-".mysql_error());
	
	$lst_visites = array(); // on créé un tableau qui contient la liste des visites ainsi que les informations de chacune
	$nb_visites = 0;
	while($tab_recuperation_liste_visites = mysql_fetch_assoc($result_recuperation_liste_visites)){
	
		$lst_visites[$nb_visites] = $tab_recuperation_liste_visites;
		$nb_visites++;
		
	}
	
	mysql_free_result($result_recuperation_liste_visites);

?>
<a name="liste"></a>
<h2>Liste des visites dans la nature</h2>

<?php 

   $tabth = array ('Date','Lieu','Milieu Bio.','Statut');
   $extraIcon = array();
   
   for($i=0;$i<$nb_visites;$i++){
      
      
      if(strtotime($lst_visites[$i]['date']) > strtotime(date("Y-m-d"))){ // On utilise strtotime() afin d'éviter les problèmes avec les 0 initiaux dans une comparaison de chaines de caractères
			$statut = "<span style=\"font-weight: bold; color: #FF0000;\">prévue</span>";
		}else if(strtotime($lst_visites[$i]['date']) == strtotime(date("Y-m-d"))){ // On utilise strtotime() afin d'éviter les problèmes avec les 0 initiaux dans une comparaison de chaines de caractères
			$statut = "<span style=\"font-weight: bold; color: #00AAFF;\">en cours</span>";
			} else {
			$statut = "<span style=\"font-weight: bold; color: #00AA00;\">passée</span>";
		}

      if($GLOBALS['USER']['level'] >= 3 || $GLOBALS['USER']['admin']){ // l'utilisateur a le droit d'ajouter
			$timeVisite = strtotime($lst_visites[$i]['date']);
			$extraIcon[$i] = " - <a href=\"index.php?p=gestion/entree_ajoute&amp;oglt2=4&amp;visit=".$lst_visites[$i]['id']."&amp;jourEnt=".date("j", $timeVisite)."&amp;moisEnt=".date("n", $timeVisite)."&amp;anneeEnt=".date("Y", $timeVisite)."\"><img src=\"images/recolte.gif\" title=\"Indiquez un végétal récolté\" alt=\"Récolte\" /></a>";
		}
      
   
      $tab_result[$i] = array (  htmlentities($lst_visites[$i]['id'], ENT_NOQUOTES, "UTF-8"),
                                 dateFr(htmlentities($lst_visites[$i]['date'], ENT_NOQUOTES, "UTF-8")),
                                 htmlentities(capitalise($lst_visites[$i]['commune']), ENT_NOQUOTES, "UTF-8"),
                                 htmlentities($lst_visites[$i]['milieu'], ENT_NOQUOTES, "UTF-8"),
                                 $statut );
   
   }

   
   displayListe("visitedansnature",750,$nb_total_visites,$optionsURL,'',1,$extraIcon);



?>


<div class="options" style="margin-left: auto; margin-right: auto; width: 750px">
	<span id="indOF_options"><?php if($optionsSet) echo "▼"; else echo "►"; ?></span> <a href="#liste" onclick="ouvrirFermerTXT('lst_options', 1, 'indOF_options', '▼', '►'); return false;">Options</a>
	<div id="lst_options" style="display: <?php if($optionsSet) echo "block"; else echo "none"; ?>;">
		<form id="frm_options" method="post" action="index.php?p=gestion/visitedansnature_gere&amp;l=<?php echo $page; ?>&amp;t=<?php echo $tri; ?>&amp;o=<?php echo $ordre; ?>#liste">
			<input id="opt_seulStatut" type="checkbox" name="opt_seulStatut" <?php if(isset($_POST['opt_seulStatut']) || isset($_GET['opt_seulStatut'])) echo "checked=\"checked\""; ?> />
			<label>Seulement les visites</label> 
			<select name="opt_statutType" onchange="document.getElementById('opt_seulStatut').checked=true;">
				<option value="1" <?php if(isset($opt_statutType) && $opt_statutType == 1) echo "selected=\"selected\""; ?>>Prévues</option>
				<option value="2" <?php if(isset($opt_statutType) && $opt_statutType == 2) echo "selected=\"selected\""; ?>>En cours</option>
				<option value="3" <?php if(isset($opt_statutType) && $opt_statutType == 3) echo "selected=\"selected\""; ?>>Passées</option>
			</select>
			<input type="submit" value="ok" />
		</form>
	</div>
</div>
<?php
//------------------------------------------------------------ Accès refusé à la page

	}else{
		if(isset($_SESSION)){
			if(!isset($_SESSION['user_id'])){ // si l'utilisateur n'est pas connecté
				include("pages/connexion.php");
			}else{ // si l'utilisateur est connecté et qu'il n'a pas accès à la page, c'est qu'il n'a pas le droit d'utilisation nécessaire
				include("pages/401.htm");
			}
		}
	}

?>